package web.mb;

import java.io.File;
import java.io.IOException;
import java.io.Serializable;
import java.util.List;
import java.util.Locale;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;

import metier.entities.Etat;
import metier.entities.Langue;
import metier.entities.Pays;
import metier.sess.ILangueLocal;
import metier.sess.IPaysLocal;
import TestTraduction.IBanqueLocal;
import TestTraduction.Payss;




@ManagedBean(name = "languageMB")
@RequestScoped
public class languageMB  {
	
	@EJB
	private IBanqueLocal metier;

	
	@EJB
	private ILangueLocal metierl;
	
	
	@EJB 
	private IPaysLocal metierp;
	
	private Langue langue=new Langue();
	private Integer  Id;
	private Integer idPays;
	private String oldname;
	
	////

	public Langue getLangue() {
		return langue;
	}

	public String getOldname() {
		return oldname;
	}

	public void setOldname(String oldname) {
		this.oldname = oldname;
	}

	public void setLangue(Langue langue) {
		this.langue = langue;
	}

	public Integer getId() {
		return Id;
	}

	public void setId(Integer id) {
		Id = id;
	}

	public Integer getIdPays() {
		return idPays;
	}

	public void setIdPays(Integer idPays) {
		this.idPays = idPays;
	}
	
	public List<Pays> listePays()
	{
		return metierp.getAllPaysActive();
	}
	public String Ajouter() throws IOException
	{
		langue.setPays(metierp.getPays(idPays));
		File f=new File("/TestJava/move/CargaisonWeb/src/web/resources/welcome_"+langue.getCode()+".properties");
	    f.createNewFile();
	    langue.setFichierConfig(f.getAbsolutePath());
	    metierl.addLangue(langue);
		return "ManageLanguage.xhtml";
	}
	
	public String edit(Integer Id)
	{
		this.Id=Id;
		langue=metierl.getLangue(Id);
		oldname=langue.getCode();
    	idPays=langue.getPays().getIdPays();
		return "EditLanguage.xhtml";
	}
	
	public String Modifier()
	{
		
		langue.setPays(metierp.getPays(idPays));
		langue.setId(Id);
		(new File("/TestJava/move/CargaisonWeb/src/web/resources/welcome_"+oldname+".properties")).renameTo(new File("/TestJava/move/CargaisonWeb/src/web/resources/welcome_"+langue.getCode()+".properties"));
		metierl.updateLangue(langue);
		return "ManageLanguage.xhtml";
		
	}

	public String Supprimer(Integer Id)
	{
		langue=metierl.getLangue(Id);
		(new File("/TestJava/move/CargaisonWeb/src/web/resources/welcome_"+langue.getCode()+".properties")).delete();
		metierl.deleteLangue(Id);
		return "succes";
		
	}
	
	public List<Langue> getListLangue()
	{
		return metierl.getAllLangues();
	}

	
	
	
/////////////////////
	private String nom;

	public List<Payss> getListPays() {
		return metier.getAllPays();
	}

	public String getNom() {
		return nom;
	}

	public void setNom(String nom) {
		this.nom = nom;
	}

	

	private Locale locale = FacesContext.getCurrentInstance().getViewRoot()
			.getLocale();

	public Locale getLocale() {
		return locale;
	}

	public String getLanguage() {
		return locale.getLanguage();
	}

	public void changeLanguage(String language) {
		System.out.println(language);
		locale = new Locale(language);
		FacesContext.getCurrentInstance().getViewRoot()
				.setLocale(new Locale(language));
	}
}
